home *** CD-ROM | disk | FTP | other *** search
/ Power Programmierung 2 / Power-Programmierung CD 2 (Tewi)(1994).iso / c / library / dos / diverses / leda / incl / b_prio.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-11-15  |  1.6 KB  |  51 lines

  1. /*******************************************************************************
  2. +
  3. +  LEDA  2.1.1                                                 11-15-1991
  4. +
  5. +
  6. +  b_prio.h
  7. +
  8. +
  9. +  Copyright (c) 1991  by  Max-Planck-Institut fuer Informatik
  10. +  Im Stadtwald, 6600 Saarbruecken, FRG     
  11. +  All rights reserved.
  12. *******************************************************************************/
  13.  
  14.  
  15.  
  16.  
  17. #ifndef BPRIOH
  18. #define BPRIOH
  19.  
  20. //------------------------------------------------------------------------------
  21. // b_priority_queues: bounded priority queues implemented by b_heaps 
  22. //------------------------------------------------------------------------------
  23.  
  24. #include <LEDA/b_heap.h>
  25.  
  26. typedef b_heap_item b_pq_item;
  27.  
  28. #define b_priority_queue(keytype) name2(keytype,b_priority_queue)
  29.  
  30. #define b_priority_queuedeclare(keytype)\
  31. \
  32. struct b_priority_queue(keytype)  : b_heap \
  33. { b_priority_queue(keytype)(int a, int b): (a,b)  {}\
  34.   ~b_priority_queue(keytype)()  { }\
  35.   b_pq_item insert(keytype k,int info)\
  36.                              { return b_heap::insert(info,Ent(k)); }\
  37.   void decrease_inf(b_pq_item it,int newinf)\
  38.                              { b_heap::decrease_key(it,newinf); }\
  39.   void del_item(b_pq_item x) { b_heap::delete_item(x); }\
  40.   keytype  key(b_pq_item x)  { return keytype(b_heap::info(x)); }\
  41.   int      inf(b_pq_item x)  { return b_heap::key(x); }\
  42.   keytype  del_min()         { return keytype(b_heap::del_min()); }\
  43.   b_pq_item find_min()       { return b_heap::find_min(); }\
  44.   void clear()               { b_heap::clear(); }\
  45.   int empty()                { return (find_min()==0) ? true : false; }\
  46.  };
  47.  
  48. #endif
  49.  
  50.